﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Odense_Kommune.Interfaces;

namespace Odense_Kommune.Model
{
    /// <summary>
    /// Klasse er lavet af Tien, DM121 - 13. dec. 2012
    /// </summary>
    public class Borger : IBorger
    {
        #region Variabler
        long cpr;
        int alder;
        string kaldenavn, fornavn, efternavn, kommentar, køn, afslutType, slutKommentar;
        DateTime datoStart, datoSlut, datoForventetAfslut;
        ISpørgeskemaCol _listeafspørgeskemaer;
        #endregion

        #region Konstruktør
        //alle felter er udfyldt, med undtagelse af slutDato
        /// <summary>
        /// Husk at lave lave validering på tomme felter, som bliver til tømme strenge. 
        /// Klassen har ikke konstruktør overload.
        /// </summary>
        /// <param name="cpr"></param>
        /// <param name="alder"></param>
        /// <param name="fornavn"></param>
        /// <param name="efternavn"></param>
        /// <param name="kommentar"></param>
        /// <param name="datostart"></param>
        /// <param name="køn"></param>
        /// <param name="afsluttype"></param>
        public Borger(long cpr, int alder, string fornavn, string efternavn, string kommentar, DateTime datostart, string køn, DateTime forventetafslutning)
        {
            this.cpr = cpr;
            this.alder = alder;
            this.fornavn = fornavn;
            this.efternavn = efternavn;
            this.kommentar = kommentar;
            this.køn = køn;
            this.datoForventetAfslut = forventetafslutning;
            this.datoStart = datostart;
            this.afslutType = null;
            this.slutKommentar = "";
            this.Kaldenavn = "";
            this._listeafspørgeskemaer = null;
        }

        public Borger(string kaldenavn, int alder, string kommentar, DateTime datostart, string køn, DateTime forventetafslut)
        {
            this.kaldenavn = kaldenavn;
            this.alder = alder;
            this.afslutType = null;
            this.slutKommentar = "";
            this.kommentar = kommentar;
            this.datoStart = datostart;
            this.datoForventetAfslut = forventetafslut;
            this.køn = køn;
            this.Fornavn = "";
            this.Efternavn = "";
            this.CPR = 0;
        }
        #endregion

        #region Metoder
        #endregion

        #region Egenskaber
        public long CPR { get { return cpr; } set { cpr = value; } }
        public int Alder { get { return alder; } set { alder = value; } }
        public string Fornavn { get { return fornavn; } set { fornavn = value; } }
        public string Kaldenavn { get { return kaldenavn; } set { kaldenavn = value; } }
        public string Efternavn { get { return efternavn; } set { efternavn = value; } }
        public string Kommentar { get { return kommentar; } set { kommentar = value; } }
        public string Køn { get { return køn; } set { køn = value; } }
        public string Afsluttype { get { return afslutType; } set { afslutType = value; } }
        public string Slutkommentar { get { return slutKommentar; } set { slutKommentar = value; } }
        //dato er allerede sat og skal ikke kunne ændres
        public string DatoStart { get { return datoStart.Date.ToString("dd/MM/yyyy"); } }
        public string DatoSlut { get { return datoSlut.Date.ToString("dd/MM/yyyy"); } set { datoSlut = DateTime.Parse(value); } }
        public string DatoForventetSlut { get { return datoForventetAfslut.ToString("dd/MM/yyyy"); } set { datoForventetAfslut = DateTime.Parse(value); } }
        public ISpørgeskemaCol ListeafSpørgeskemaer { get { return _listeafspørgeskemaer; } }
        #endregion

    }
}